In today's business environment, organizations consider information management critical to their success. Typically, organizations use computer application software to collect and manage data from varied sources. These sources include customer relations, financial planning, marketing, human resources and manufacturing. Traditionally, organizations have stored such data in heterogeneous systems and in varied formats. This has resulted in a tremendous amount of information being collected and stored in numerous diverse and often unconnected computer systems and databases. Furthermore, relationships between pieces of data in varied formats and among heterogonous databases are typically inadequate or difficult in establishing. As a result, critical business and management decisions are often made based on an incomplete set of information.